//定义日志消息类，进行日志中间信息的存储
// i.   日志的输出时间：用于过滤日志输出时间；
// ii.	日志等级：用于进行日志过滤分析；
// iii.	源文件名称
// iv.	源文件行号：用于定位出现错误的代码位置
// v.	线程ID：用于过滤出错的线程
// vi.	日志主体消息
// vii.	日志期名称 （当前支持多日志器同时使用）

#ifndef __M_MSG_H__
#define __M_MSG_H__

#include "util.hpp"
#include "level.hpp"

#include <iostream>
#include <string>
#include <thread>



namespace mylog {
    struct LogMsg {
        time_t _ctime; //日志产生时间戳
        LogLevel::value _level; //日志等级
        size_t _line; // 行号
        std::thread::id _tid; // 线程id
        std::string _file; // 源码文件名
        std::string _logger; // 日志器名称
        std::string _payload; // 有效消息数据

        LogMsg(LogLevel::value level,
                size_t line,
                const std::string file,
                const std::string logger,
                const std::string msg):
                _ctime(util::Date::now()),
                _level(level),
                _line(line),
                _tid(std::this_thread::get_id()),
                _file(file),
                _logger(logger),
                _payload(msg) {}
    };
}

#endif
